Communication hub and repeaters

ABSTRACT

A method and apparatus for receiving, by a processing device of a communication hub, communication data from a source device over a first channel of a plurality of wireless communication channels. The hub authorizes the source device in view of at least one of an indication that the source device is within a specified distance from the hub or an indication that the source device is predefined as an approved device. The hub determines whether to re-transmit the data to a destination device over a second channel. The data is not re-transmitted when the data includes a specified level of corrupted data or the source device is unauthorized. The hub transforms the data from a first format to a second format corresponding to the second channel.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 62/146,084 filed on Apr. 10, 2015, the contents of which are hereby incorporated by reference herein.

BACKGROUND

Asset management systems may be systems used to manage the entire or part of the lifecycle of an asset. An entity may identify assets as objects of value to the entity. Assets may be tangible objects, such as buildings, hardware, devices, etc., or may be intangible objects such as software, information, intellectual property, etc. Asset management systems may help an entity design, deploy, operate, maintain, track, upgrade, and/or dispose of assets. As part of asset management, an entity may use an asset tracking system to identify, track the movement of, and/or manage the entity's assets.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example, and not by limitation, in the figure of the accompanying drawings.

FIG. 1A illustrates a communication flow of asset and management information in a medical management system (MMS) according to various embodiments.

FIG. 1B illustrates an asset management system, according to one embodiment.

FIG. 2 illustrates a method of analyzing and re-transmitting communication data, according to one embodiment.

FIG. 3 illustrates a method of delaying the re-transmitting of communication data, according to one embodiment.

FIG. 4 illustrates a method of delaying the re-transmitting of communication data, according to another embodiment.

FIG. 5 illustrates a method of transmitting a response in view of the communication data, according to one embodiment.

FIG. 6 illustrates a method of authorizing a source device in view of indication the source device is within a specified distance, according to one embodiment.

FIG. 7 illustrates a method of authorizing a source device in view of a device density threshold, according to one embodiment.

FIG. 8 illustrates a method of authorizing a source device in view of indication the source device is predefined as an approved device, according to one embodiment.

FIG. 9 illustrates a method of determining whether to re-transmit the communication data in view of a specified level of corrupted data, according to one embodiment.

FIG. 10 illustrates a block diagram of a machine, according to one embodiment.

DETAILED DESCRIPTION

A communication network, such as an enterprise network for a large-scale enterprise, may provide numerous connectivity and management challenges. In many environments, such as a hospital environment, a military environment, or large corporate environment, new communication networks may be installed without or limited benefit of leveraging existing communication networks. For example, many environments use secure networks and do not allow access by third parties. In such as case, the third party may need a separate network to communicate the third-party information. In another example, an asset management system may be used to track and manage the assets of an enterprise. Without access to the enterprise's networks, communication of asset management information may be difficult. The nodes of a communication network may be numerous, disparate, and/or transmit data using different wireless and wired communication protocols. Data from numerous and disparate nodes may need to be aggregated, managed, analyzed, transformed, and/or re-transmitted. Often the data may need to be re-transmitted to a server to perform operations, such as computationally intensive analysis. A wired connection to a server, such as an off-site server, may not be available in some environments. A wireless communication, such as a cellular communication, may be used to re-transmit data to the server. Low data transfer rates and the cost of data transmission over cellular may be prohibitive.

The present disclosure addresses the above-mentioned and other deficiencies by using a communication hub to receive communication data from a plurality of communication channels, authorize a source device having transmitted the communication data, determine whether to re-transmit the communication data to a destination device based on one or more factors, transform the format of the communication data, and re-transmit the communication data. The communication hub may be used in an asset management system and provide a separate network that runs in parallel with an enterprise's network without using or intruding on the enterprise's network.

Communication data (also referred to as data) may refer to information communicated in an information signal to and/or from a communication hub. The communication data may be digital data and/or analog data. In one example, communication data may be in the form of a data packet. A data packet may refer to a formatted unit of data containing in the form of one or more identifiers. For example, (i.e., data the network uses to deliver the user data) the sequencing information, the length of the payload, source and destination addresses, etc., may each be considered identifiers. In another example, the user data of the data packet may include one or more identifiers. The user data may include company identifiers, source device identifiers, approved device identifiers, signal strength identifiers (e.g., received signal strength indicator (RSSI), property identifiers, parameter identifiers, parameter value identifiers, identifiers of other manufacturing specific data (e.g., manufacturer identifier), wireless broadcast identifiers (e.g., advertisement indicator identifier), location identifiers, beacon identifiers (e.g., a major identifier (ID) and/or minor identifiers (ID)), battery identifiers, etc. Examples of identifiers are provided for purposes of illustration, rather than limitation. It should be appreciated that different identifiers may be available. It should be appreciated that some or all of identifiers in a data packet may be prescribed by the particular communication protocol used to transmit the communication data. In one embodiment, the communication data includes data received from devices, such an asset or asset tag device, at a communication hub and/or data re-transmitted from the communication hub.

A communication channel may refer to a transmission medium (or a path provided by a transmission medium) used to convey an information signal, such as communication data. The communication channel may include software and/or hardware capable of sending and/or receiving the information signal in a particular communication protocol. Each communication channel may be a transmission medium for one or more different communication protocols (wired and/or wireless communication protocols). A communication channel may be a wired communication channel or a wireless communication channel. A wired communication channel (e.g., Ethernet) may be used to transmit and/or receive communication data. A wireless communication channel may be used to transmit and/or receive communication data conforming to a wireless communication protocol. The wireless communication protocol may conform to a low energy wireless personal area network (PAN) standard and/or a wireless local area network (WLAN) standard. For example, a communication channel may include a network interface device, such as a dongle using the Bluetooth® technology, developed by the Bluetooth Special Interest Group (SIG). The Bluetooth® dongle may receive and/or transmit an information signal conforming to the Bluetooth® standard. The communication channel may also have additional hardware and software capable of processing the wired or wireless signals. Alternatively, the network interface device can operate using other personal area network (PAN) technologies, such as the Zigbee® technology.

In one embodiment, a communication hub receives data from a source device over a first channel. For example, the communication hub may receive communication data from an asset, such as a medical cart communicating via a wireless communication protocol, such as a protocol using the Wi-Fi® technology. Alternatively, other wireless communication protocols or wireless technologies may be used, including other wireless local area network (WLAN) technologies, PAN technologies, or the like. The communication hub may authorize the source device to use the communication hub to send communication data to a server computer system based on an indication that the source device is within specified distance from the hub. For example, the communication hub may examine communication data for identifiers, such as a received signal strength indicator (RSSI), to determine whether the asset is within a specified distance. The communication hub may authorize the source device in view of an indication the source device is predefined as an approved device. For example, the communication hub may examine communication data for identifiers, such as a company identifier, and compare the one or more identifiers to identifiers from predefined approved devices. The communication hub may determine to not re-transmit the communication data if the source device is not authorized or the communication data is corrupted. The communication may determine to re-transmit the communication data to a destination device, such as a server, over another wireless communication channel, such as a cellular channel. The data may be transformed from one format to another format. For example, that communication data may be transformed from a format compliant with a low energy wireless PAN standard (e.g., Bluetooth® format) to an encrypted format compatible with the cellular standard. The communication hub may retransmit the re-formatted communication data to the server via the cellular channel of a cellular network, for example.

In another embodiment, the communication hub may authorize the source device in view of a device density threshold associated with the communication hub. The device density threshold may be a threshold number of devices able to connect to the communication hub at a particular time. The device density threshold may be defined by the communication hub and/or a system administrator. A communication hub may analyze the communication data to determine a signal strength indicator, such as the RSSI. The communication hub may sort source devices according to the RSSI. The communication hub may select a number of source devices, up to the device density threshold, with the highest RSSI. The communication hub may filter out source devices with weaker signals and that may be located closer to other communication hubs. In one embodiment, the communication hug may send a rejection message to the device. The rejection message may indicate that to the device that the hub has rejected the device and/or indicate the device may communicate with another hub (such as a hub that is a distance closer to the device).

In another embodiment, prior to re-transmitting the communication data, communication hub may analyze the data to determine the type of data. For example, the communication data may examine the communication data to determine whether the data contains patient critical information and/or routine information. The communication hub may determine a priority of the communication data based on the type of data, For example, patient critical data may be given a high priority while routine information may be given a low priority. The communication hub may delay the re-transmission of the communication data when the priority is below a specified threshold. For example, communication hub may delay low priority data and not delay high priority data.

In still another embodiment, the communication hub may analyze a data size of the communication data. For example, communication hub may determine the data size of the communication data is 500 kilobytes. The communication hub may delay the re-transmission of the communication data when then data size is greater than a specified threshold, for example 1 Gigabyte. In some examples, delaying the communication data may be used to efficiently transmit data in low data rate environments and/or achieve cost efficiency when data transmission rates fluctuate over time (e.g., over the time of day). Delaying the communication data may be further described with respect to FIG. 3.

In another embodiment, the communication hub may determine whether a response is to be transmitted in view of the communication data. In one embodiment, a response may be transmitted to an external server. In another embodiment, a response may be transmitted to the hospital system. The communication hub may analyze the communication data to determine a type of data. The communication hub may examine the communication data to find identifiers indicating type of data. Using the identifiers, the communication hub may determine whether the type of data is predefined to trigger a response and transmit a response if it is determined that the type of data is to trigger a response. For example, a patient may be monitored by an electrocardiogram (EKG) device (e.g., asset). When the patient's heart stops beating the EKG may send a signal to the communication hub reporting that no pulse is detected. The communication hub may identify that the signal from an EKG. In response, the communication hub may transmit a response, such as an alert to the nursing station to alert the staff that the patient in room X has gone into cardiac arrest.

It should be noted that examples provided of communication hubs being used in hospital environments are provided for purposes of illustration, rather than limitation. It should be appreciated that communication hubs, as well as other cooperating devices, may be used in different environments such as disaster relief operations, retail stores, and/or product warehouses.

FIG. 1A illustrates a communication flow of asset and management information in a medical management system (MMS) 100 according to various embodiments, in addition to aspects of a real-time location system (RTLS) that works with the MMS 100. The communication flow may originate in a location such as a room 110, and may include beacon devices 102 and data sent from an asset 104 (e.g., a medical cart is shown). The asset 104 may be coupled with an asset tag device 105A or may include an asset tag manager 105B that runs on the asset 104 to determine a location of the asset 104. An asset tag device 105A may be an electronic device coupled to an asset or integrated into the asset and used as part of an asset-tracking system (ATS), such as a real-time locating system (RTLS). An asset tag device may be a small (e.g., size of a U.S. quarter), resource-constrained (i.e., low processing power, limited memory, and/or limited battery life) device used to transmit data, such as a beacon identifier, to a more powerful central device. The central device, such as a server computer system (also referred to as server), may make a determination of location of an asset tag device and/or asset in view of the transmitted data. An asset tag device may be a wireless device and transmit data using a wireless communication protocol. An asset tag device may be a low-power device and/or be battery powered. An asset tag device may use a rechargeable battery, such as a lithium-ion rechargeable battery. An asset tag device may be coupled to or integrated into an asset in a variety of ways. For example, an asset tag device may be a discrete hardware device that is physically fixed to a hard asset. An asset tag device may be a hardware device that is integrated into the hardware of an asset. A third party device, such as a mobile phone, may be converted into an asset tag device by loading the asset tag software (e.g., asset tag manager) and leveraging the hardware of the third party device to perform the functions of the asset tag device.

The data (including the location) may flow through a communication hub 106 (or other network device) and arrive at a server 108 (such as a medical database and/or an authentication server). In some embodiments, the data also, or alternatively, flows through a communications network 115, where the communications network 115 may include the communication hub 106. The data flow may also flow in the reverse direction from the server 108 and/or the communication hub 106 to the asset 104, e.g., in response to a request for medical information or records on a patient. The data may include asset and/or management data, medical information, patient information, authentication data, and other personal and security-related information and the like.

The MMS 100 may include multiple assets 104. The beacon devices 102 may be associated with fixed locations and may provide a location identifier (ID) for asset tag device 105A (or 105B) to detect, such that the asset tag device 105A (or 105B) may determine a current location, which the assets may transmit through the communication hub 106 to the server 108. The beacon device 102 may identify or be associated with any type of location, including a room, a hallway, a common or conference room, and/or a grid location.

The beacon device 102 may include a circuit board within a housing, the circuit board containing a processor (or discrete logic or controller or microcontroller), memory (non-volatile and/or volatile memory), a battery (or other power source), and a transceiver primarily for transmitting. The beacon device 102 may be programmed to transmit a beacon signal containing data to identify the beacon device to other devices, such as to the asset tag device 105A or to the asset tag manager 105B running on a host machine of the asset 104.

In one example, the beacon device 102 may communicate with the asset tag device 105A and/or the asset tag manager 105B through a personal area network (PAN), such as, e.g., with Bluetooth® technology developed by the Bluetooth Special Interest Group (SIG). In another example, the PAN may be created with Bluetooth® low energy (BLE) technology (also developed by Bluetooth SIG) that may be used to track the assets 104. For example, a BLE-based beacon may be associated with an asset in the MMS 100 to communicate asset and/or management information of the asset.

In another example, the beacon device 102 may be an active or passive radio frequency identification (RFID) tag that transmits a unique RFID number. The RFID number or identifier may be correlated at the server 108 with a certain location such as may have been pre-programmed at the server 108 or within a distributed MMS 100. In this example, the asset tag device 105A and/or the asset tag manager 105B may be or include an interrogator that interrogates the RFID tag of the beacon device 102 to determine the RFID number or identifier of the beacon device 102. When the beacon device 102 is an active RFID tag, the asset tag device 105A and/or the asset tag manger 105B may receive the actively transmitted RFID number of identifier as transmitted by the beacon device 102.

The asset tag device 105A (e.g., a non-integrated asset tag device) may be implemented in hardware and include a circuit board within a housing as depicted in FIG. 2, the circuit board containing a processor, memory (non-volatile and/or volatile memory), a battery, and a transceiver. The transceiver may be a third-party integrated circuit, such as an RF module, e.g., a Bluetooth® chip, an RFID interrogator and/or receiver or the like. The asset tag device may be performed by processing logic comprising hardware, software, firmware or any combination thereof.

The asset tag manager 105B (e.g., an integrated asset tag device) may be a software program (including instructions) that may utilize a processor, memory, transceiver and the like of a host machine of the asset 104, such as the medical cart (all-in-one (AOI)), any medical device in which the asset tag is integrated, or any device when used in non-medical applications.

The asset tag device 105A and/or the assets 104 may be tracked with a real-time location system (RTLS) that determines the location of whatever is tagged (or otherwise tracked by identifying a location of beacon devices 102 in proximity of the assets 104). The tracked entities may include an asset or equipment, a MSM and/or patient(s), for example. The communications hub 106 may be wired or wireless and may direct data between the assets and to (and from) the assets 104 and the server 108.

In one example, the beacon device may broadcast a location ID to any device located within the room 110. In this example, when the asset 104 receives the location ID from the beacon device 102, the asset 104 may determine its location. In another example, the asset 104 may measure a received signal strength indication (RSSI) from the beacon device 102 to determine a location of the device within a radius or area for which the beacon device is designated.

For example, the asset 104 may use the received location ID from the beacon device 102 to determine that the asset 104 is located in an identified room. The asset 104 may also use the RSSI to determine a location of the asset 104 within the room, such as within a threshold of location accuracy (e.g., within X distance from the beacon device 102). In one example, a room may include multiple beacon devices 102. The asset 104 may receive multiple location IDs from the multiple beacon devices 102 and use the RSSI of the different location IDs to determine the location of the asset 104 within the room. For example, the asset 104 may use the RSSI of the different location IDs to triangulate the location of the asset 104 in the room. In another example, the beacon device 102 may be located at different locations. For example, the beacon device 102 may be located in a hallway, in a lobby, in a stairwell, in a room, in a parking lot, and so forth. When the asset tag device 105A (or asset tag manager 105B) determines its location, the asset tag device 105A (or asset tag manager 105B) may communicate asset information (such as location information, asset management information, and so forth) to a closest communication hub 106.

In another example, the asset tag device 105A and/or the asset tag manager 105B can append the location ID to the asset information and communicate the appended asset information to the communication hub 106. The communication hub 106 can analyze the appended information to determine the location of the asset 104 using the location ID and the asset information. For example, the communication hub 106 can access a database that defines the locations of different beacon devices with different location IDs. The communication hub 106 can compare the received location ID from the asset tag device 105A and/or the asset tag manager 105B with the location IDs in the database to find a matching pair of location IDs and associate the defined location of the location ID with the asset 104.

In one example, the communication hub 106 may be a device (such as a communication plate) mounted to a wall. In another example, the communication hub 106 may be integrated into a construction of a location. For example, the communication hub 106 may be integrated into a floor, ceiling, or wall of a facility, for example. In another example, the communication hub 106 may be software on the server 108.

In one example, the communication hub 106 may be located at a different location than the room 110 (such as a central location on the floor where the device is located or a central location in the building where the device is located). When the communication hub 106 receives the asset information from the asset 104, the communication hub 106 may relay the information to a server 108. In one example, the communication hub 106 may receive information from different devices. When the communication hub 106 receives the information from the different devices, the communication hub 106 may aggregate the data and send the aggregated asset information to the server 108.

One advantage of the asset tag device 105A (or asset tag manager 105B) determining its location and sending the asset management information to the communication hub 106 may be to enable the beacon device 102 to be small and low energy. For example, because the beacon device 102 broadcasts the location ID, the beacon device 102 may consume a small amount of power (such as a 1-2 mAh per day) and may be powered by a small battery for an extended period of time. The asset tag device 105A may have a separate power supply that may be recharged more easily than the beacon device 102. Another advantage of the asset tag device 105A (or asset tag manager 105B) communicating the asset information may be that the asset the asset tag device 105A may select the information of the asset tag device 105A to be communicated to the communication hub 106 and communicate the information in real-time and directly to the communication hub 106 to reduce communication interference from multiple devices.

In one example, the MMS 100 may track the assets 104 in real-time or substantially real-time. For example, the asset 104 may continuously communicate asset and management information to the communication hub 106.

In another example, the MMS 100 may track the assets on a periodic basis. For example, the asset 104 may communicate asset and management information to the communication hub 106 on a periodic basis. In another example, the communication hub 106 may transmit a request to the asset 104 to communicate the asset and management information. When the asset 104 receives the request, the asset 104 may communicate the asset and management information to the communication hub 106.

In one example, the MMS may include an implementation system to map a facility where assets may be managed, e.g., determine a schematic or layout of the facility. In another example, the implementation system may include software to determine a schematic or layout of the facility, including rooms, stairway objects, hallway objects, and so forth, based on a digital plan and/or a computer-assisted built plan within the software. In another example, a user may use a scanner, such as a three-dimensional (3D) scanner and walk around the facility collecting layout information, where the software may use the information from the scanner to determine the layout of the facility.

With further reference to FIG. 1, when the implementation software has determined a layout of the facility, the software may associate the beacon device 102 and/or the communication hub 106 may be associated with the layout of the facility. For example, the beacon devices 102 and/or the communication hubs 106 in a facility may have a unique ID. When the facility layout is determined, the implementation software may receive input from an input device (such as a mouse, a keyboard, a stylus, a touch screen, and so forth) associating the different unique IDs with locations on the facility layout.

In another example, locations in the facility layout may have unique IDs associated with the location. In this example, an assistance device (such as a scanner or a communication device) may be taken to one or more locations in the facility, where the location ID may be selected, the assistance device may scan or communicate with the beacon device 102 and/or the communication hub 106, and the beacon device 102 and/or the communication hub 106 may be associated with the location ID. In another example, when a device is located at a facility location, the assistance device may scan the location for the beacon devices 102 and/or the communication hubs 106 (such as by using by using Bluetooth® scanning) and associate the beacon device 102 and/or the communication hub 106 scanner in the location with a location ID. For example, a user may walk into a room with a first location ID, use a tablet with Bluetooth® technology to scan the room for the beacon devices 102 and/or the communication hubs 106, and the software may associate the beacon devices 102 and/or the communication hubs 106 detected by the tablet with the first location ID. The user may repeat this process for multiple locations in the facility.

In yet another example, the beacon devices 102 may have a predefined number or identifier (ID). When a layout of the building is compiled, the user may use a graphical user interface (GUI) to select which beacon device is located in each room, hallway, conference room and the like.

An advantage of the implementation of the MMS 100 may be to enable integration of the MMS into a preexisting facility, e.g., the MMS may be installed in a preexisting facility and the implementation system may map the preexisting facility. Another advantage of the MMS may be that the installation and implementation of the MMS may enable quick and efficient installation as the MMS may be installed and configured for a facility without invasively installing an asset management system. Another advantage of the MMS may be that the system may avoid interference by other devices by using the implementation system to determine optimal locations of the beacon devices 102 and/or the communication hubs 106.

The asset management system can be used in other contexts, as described with respect to FIG. 1B.

FIG. 1B illustrates an asset management system 100, according to one embodiment. The asset management system 100 may be at least partially deployed in area 110. Area 110 can include beacon device 102 and beacon device 103. In one example, the beacon devices 102 and 103 can be fixed to opposite corners of the room. Beacon devices 102 and 103 may transmit wireless broadcast 122 and 123, respectively, using a wireless communication protocol compatible with asset tag device 105A. The asset tag device 105A may be coupled to asset 104. Asset 104 may be any asset as described herein. For example, the asset tag device 105A may be integrated into the hospital cart or other medical device, military equipment, business resource, or the like. An asset tag device 105A may be coupled to or integrated into an asset 104 in a variety of ways. For example, an asset tag device 105A may be a discrete hardware device that is physically fixed to a hard asset. An asset tag device 105A may be a hardware device that is integrated into the hardware of an asset. A third party device, such as a mobile phone, may be converted into an asset tag device 105A by loading the asset tag software (e.g., asset tag manager 105B) and leveraging the hardware of the third party device to perform the functions of the asset tag. Asset tag may refer to asset tag device 105A and/or asset tag manager 105B.

The asset tag device 105A includes an asset tag manager 105B, that is, the processing device of the asset tag device 105A executes instructions corresponding to the asset tag manger 105B to perform the functionality describe herein. In other embodiments, the asset tag manager 105B executes on a processing device of a host device, such as the AIO, or other medical asset. In some embodiments, asset tag manager 105B may be a software implementation of asset tag device 105A used to perform one or more functions of the asset tag device 105A. Asset tag manager 105B may be executed by a processing device (not shown).

Area 110 may refer a physical space delineated by the signal coverage of one or more beacon devices. It should be appreciated that an area 110 may be defined by software and correspond to the physical location of the beacon device and associated wireless broadcast. For example, a large room may have multiple areas. Two beacon devices 102 and 103 located at one side of a room may define an area, while two other beacon devices at the other side of a room may define another area. Software may correlate the location of the beacon devices 102 and 103 and signal coverage of the beacon devices 102 and 103 to define an area, such as area 110. Using two or more beacon devices to define an area may allow an asset management system to improve an accuracy of location determinations of assets. It also should be appreciated that while two beacon devices (i.e., beacon device 102 and 103) are illustrated in FIG. 1B as defining area 110, the number of beacon devices is for purposes of illustration, rather than limitation. An area may be defined by one or more beacon devices and may depend on a variety of factors such as available resources or system requirements.

A broadcast may refer to the transmission of a signal containing data in for example, a data packet. A wireless broadcast may be a type of broadcast and may refer to the transmission of a signal containing data without an electrical conductor, for example the transmission of a signal through the air. Any device, such as beacon device 102, beacon device 103, and asset tag device 105A may transmit a broadcast. Any device, such as asset 104, asset tag device 105A, asset tag manager 105B, and/or server 108 may scan and receive a broadcast.

An asset, such as asset 104, may refer to an object of value to the entity. Asset 104 may be tangible objects, such as buildings, hardware, devices, etc., or may be intangible objects such as software, information, intellectual property, etc. Soft assets may include intangible objects as well as human beings. Hard assets may include tangible assets. Asset 104 may also broadcast data to hub 106, as illustrated by wireless broadcast 124.

An asset tag device, such as asset tag device 105A, may be an electronic device coupled to an asset, such as asset 104, and used as part of an asset-tracking system (ATS), such as a real-time locating system (RTLS). In one example, the asset tag device 105A may be a small (e.g., size of a U.S. quarter), resource-constrained (i.e., low processing power, limited memory, and/or limited battery life) device used to transmit data, such as a beacon identifier, to a more powerful central device. The central device, such as a server computer system (also referred to as server 108), may make a determination of a location of asset tag device 105A and/or asset 104 in view of the transmitted data. In another example, the asset tag device 105A may be a wireless device and transmit data using a wireless communication protocol. In another example, the asset tag device 105A may be a low-power consuming device and/or be battery powered. In another example, the asset tag device 105A may use a rechargeable battery, such as a lithium-ion rechargeable battery. In another example, the asset tag device 105A may be coupled to or integrated into asset 104 in a variety of ways. For example, asset tag device 105A may be a discrete hardware device that is physically fixed to a hard asset. In another example, the asset tag device 105A may be a hardware device that is integrated into the hardware of asset 104. A third party device, such as a mobile phone, may be converted into an asset tag device 105A by loading the asset tag software (e.g., asset tag manager 105B) and leveraging the hardware of the third party device to perform the functions of the asset tag device 105A.

Asset tag device 105A may be coupled to asset 104. The asset tag device 105A may communicate with at least the beacon devices 102 and/or 103, hub 106, sever 108, repeater 114 and/or asset 104. In one example, the asset tag device 105A may be coupled to an individual, such as medical personnel in a hospital environment (also referred to as facility). In another example, the asset tag device 105A may be attached to an employee identification badge or attached to or integrated into an electronic device, such as a wristband or watch. In another example, an asset tag manager 105B may be software integrated into a third party device, such as a mobile phone or tablet. The asset tag manager 105B may leverage at least part of the hardware and/or software resources of the third party device to perform the functions of an asset tag. In should also be appreciated that an asset tag manager 105B may be compatible with any device, software platform, and/or operating system.

A beacon device (also referred to as a location identification beacon device), such as beacon device 102 and/or beacon device 103, may be an electronic device fixed to a known location (and/or marking a fixed location) and used to transmit data in for example, a data packet. The data may include a fixed parameter, such as a beacon identifier, which may be used to determine a relative location of a device, the device having received the beacon device's data packet, to the beacon device 102 and/or 103. For example, two different beacon devices (e.g., beacon devices 102 and 103) may be fixed to different corners of a room (e.g., area 101), each transmitting a wireless broadcast (e.g., wireless broadcast 122 from beacon device 102 and wireless broadcast 123 from beacon device 103). Each of the wireless broadcasts may contain a different beacon identifier representative of the different beacon devices. The wireless broadcasts 122 and 123 may be received by an asset tag device 105A. The asset tag device 105A may send the beacon identifiers and the asset tag identifier to a server 108 through hub 106. The server 108 may use the beacon identifiers to identify each beacon device, identify the known location of each beacon device, and determine the relative location of the asset tag to the beacon devices. In another embodiment, beacon device 102 and/or 103 may be a small, resource-constrained (i.e., low processing power, limited memory, and/or limited battery life) device used to transmit data, such as a beacon identifier, to asset tag device 105A. Beacon device 102 and/or 103 may be a wireless device transmitting data packets using a wireless communication protocol compatible with asset tag device 105A. The beacon device 102 and/or 103 may be a low-power device and/or battery powered. The beacon identifier may be a unique value, such as a number, assigned to the beacon device by a developer and/or used to identify a beacon device. In one embodiment the major identifier (2 bytes) and/or minor identifier (2 bytes) may be used as a beacon identifier. The major identifier and/or the minor identifier may be a serialized number. The beacon identifier may be distinct from the universally unique identifier (UUID). An example of beacon device 102 and/or 103 may be an iBeacon®, or other device, such as an active radio frequency identification device (RFID), a passive RFID, an infrared device, a motion sensor, a sonar or sonic device, and/or a near field communication (NFC) device.

It should be noted that a wireless communication protocol conforming to the Bluetooth Low Energy® (BLE) (also referred to as Bluetooth Smart®) standard is used for purposes of illustration, rather than limitation. It should be appreciated that other wireless communication protocols may be used, such as protocols conforming to the Bluetooth® wireless standard (also referred to as Classic Bluetooth®), ZigBee® wireless standard, Wi-Fi® wireless standard, ultra-wideband (UWB) wireless standard, or other current or future standard. It should be noted that Bluetooth® shall refer to at least Bluetooth® Low Energy and Classic Bluetooth®, unless otherwise noted. It should also be noted that in one embodiment, the wireless communication protocol may a short range wireless communication protocol compatible with short range wireless communications (e.g., approximately 100 m or less) in a short range wireless network.

In one example, the asset tag device 105A may broadcast wireless broadcast 125 to hub 106. In another example, the asset tag device 105A may broadcast a wireless broadcast to repeater 114, which in turn broadcasts the wireless broadcast 126 to hub 106. The wireless broadcast 125 may be in a wireless communication protocol, such as Bluetooth®. Asset 104 may also broadcast wireless broadcast 124 to hub 106 in the same or different wireless communication protocol. The beacon devices 102 and/or 103 (or any other device) may broadcast data to hub 106.

Hub 106 (also referred to as a communication hub) may refer to an electronic device that connects communication data from one electronic device to another electronic. Hub 106 may include functionality of a conventional network hub, as well as additional functionality. For example, hub 106 may receive, filter, analyze, modify, and/or transmit data to and from multiple devices using wireless and/or wired communication and/or a combination thereof. Hub 106 may transmit received data to multiple ports, similar to a conventional network hub. Hub 106 may perform functions of a network switch and may receive, process, and forward data only to a destination device that needs to receive it (rather than broadcasting the data to each of its ports). Hub 106 may also function as a wireless access point (AP) and allow wireless devices to connect using a wireless communication protocol (e.g., Wi-Fi®). Hub 106 may provide a hotspot, a physical location offering internet access, over a wireless local area network (WLAN) through the use of another device such as a router to connect to an internet service provider. Additionally, hub 106 may perform access control (e.g., authentication) to control which devices have access to the network. Hub 106 may also function as a router to forward data packets between multiple computer networks. Hub 106 may perform software defined networking (SDN) functions. For example, hub 106 may function similar to a Dynamic Host Configuration Protocol (DHCP) server that may assign an internet protocol (IP) address to a device (e.g., authenticated device), attempting to use a network, such as a Wi-Fi® network associated with hub 106. An internet protocol (IP) table may be configured to route data from devices within a range of IP addresses to one location and/or through a particular channel and route data from devices within another range of IP addressed to another location and/or through another channel. Although not illustrated in FIG. 1B, hub 106 may transmit data to computer systems in a local area network (LAN). For example, hub 106 may transmit data to the internal hospital data center. Hub module 112 may be a software implementation of hub 106 and perform some or all the functions of hub 106.

In one embodiment, hub 106 may have one or more communication channels. Hub 106 may include corresponding hardware and/or software for each communication channel. For example, hub 106 may include several wireless communication channels conforming to a wireless communication protocol of a low energy PAN standard, such as a Bluetooth® channel (i.e., a channel compliant with the Bluetooth® standard able to transmit and/or receive signals), several wireless communication channels conforming to a wireless communication protocol of a WLAN standard, such as a Wi-Fi® protocol and/or wireless communication channels conforming to a different wireless communication protocol, such as a cellular channel (i.e., a channel compliant with a cellular standard able to transmit and/or receive cellular signals). Hub 106 may also include wired channels, such as an Ethernet channel. Hub 106 may have an interface for each channel capable of transmitting and/or receiving in the communication protocol associated with the channel. For example, hub 106 may include one or more separate antennas for each channel and/or one or more integrated antennas. Hub 106 may include one or more antennas to receive a wireless communication protocol of a low energy wireless PAN standard, such as an antenna capable to receive Bluetooth® signals, one or more antennas to receive a wireless communication protocol of a WLAN standard, such as an antenna to receive Wi-Fi® signals, a wired Ethernet port, and/or a cellular antenna (e.g., multiple-input and multiple-output (MIMO) antenna). A channel may be implemented by a hardware dongle compatible with the particular standard (e.g., a Bluetooth® dongle).

In one embodiment, hub 106 may receive data from multiple source devices such as asset 104, asset tag device 105A, repeater 114, beacon device 102 and 103, or other devices such as third-party mobile devices. A source device may refer to an electronic device at which the received data (e.g., communication data) originated or was created. For example, an asset tag device 105A may send a wireless broadcast to repeater 114, which in turn transmits the wireless broadcast to hub 106. In this example, the asset tag device 105A may be considered a source device because data in the wireless broadcast originated from the asset tag device 105A. In another embodiment, a source device may be the electronic device from which the data was received (e.g., repeater 114 in the previous example). Hub 106 may further filter and transform the data, and transmit the modified data through a cellular network and/or wired network (e.g., local area network (LAN)). A cellular network (e.g., mobile network) may be a wireless network distributed over areas (e.g., cells), each served by at least one fixed-location transceiver (e.g., cell site or base station). Each cell may use a different set of frequencies from neighboring cells to avoid interference and provide bandwidth within each cell. The cellular network may use any mobile telecommunications technology such as third generation (e.g., 3GPP LTE), fourth generation (e.g., WiMAX, 4G LTE), and fifth generation (5G) of mobile telecommunications technology. A cellular communication protocol may be a long range wireless communication protocol used for long range wireless communications in a long-range cellular network. In one example, hub 106 may receive data in data packets conforming to a wireless communication protocol of a low energy PAN standard (e.g., BLE® protocol) and/or a wireless communication protocol of a WLAN standard (e.g., Wi-Fi® data format protocol) and re-transmit data to the server 108 using cellular communication protocols on a cellular network. In another example, hub 106 may receive data in data packets conforming to the PAN standard and/or WLAN standard and re-transmit data to another local server (not shown) using a wired Ethernet cable (e.g., in a LAN).

In one embodiment, hub 106 may be located at a selected location within a facility, such as on each floor of a hospital environment (e.g., facility). Hub 106 may be located at select locations in the hospital environment so as to provide communication coverage throughout the environment. In one example, hub 106 may be located in high traffic areas or along routes or paths that the asset 104 may frequently move along. In another example, the locations can be predefined locations selected during the construction of an environment. In another example, the locations can be selected to provide a desired coverage area, such as a wing of a hospital environment.

In one embodiment, hub 106 may provide a secure private network for devices (such as server 108, asset tag device 105A, or asset 104) to communicate with the hub 106. For example, hub 106 may provide a secure wireless area network (WLAN), secure PAN, or Private Wide Area Network (PWAN) to communicate with a device, such as an asset tag device 105A and/or asset 104. In another example, hub 106 may be a gateway or access point for the asset 104 and/or asset tag device 105A to access information stored on the server 108. For example, hub 106 maybe a network switch enabling asset 104 to access a secure server, such as electronic medical records (EMRs), hospital information system (HIS) information, or an active directory of a hospital server. The devices in the WLAN may use the Wi-Fi® technology and IEEE 802.11 standards defined by the Wi-Fi Alliance. Alternatively, the devices in the WLAN may use other technologies and standards. Similarly, the devices in the PAN or WPAN may use the Bluetooth® technology and IEEE 802.15 standards defined by the Bluetooth Special Interest Group. Alternatively, the devices in the secure PAN may use other technologies and standards. The WAN or PWAN can be used to transmit data over long distances and between different LANs, WLANs, metropolitan area networks (MANs), or other localized computer networking architectures.

In one embodiment, hub 106 may prepare data for transmission to another device, such as server 108. For example, hub 106 may reformat the data that is received into another format. The format may refer to the organization of data (e.g., a data format) according to a predefined specification. The hub 106 may prepare the data by compressing data in a compression format, securing data in a secure format (e.g., encryption format), changing the data for example, to be compliant with a communication protocol (e.g., Wi-Fi® to Bluetooth®, Bluetooth® v. 1.0 to Bluetooth® v. 2.0), removing data, and/or adding data.

In another embodiment, hub 106 may include a network compliance device configured to run a Health Level 7 (HL7) engine. HL7 may refer to a set of international standards for transfer of clinical and administrative data between software applications used by various healthcare providers. HL7 may provide a framework for the exchange, integration, sharing and retrieval of data used by healthcare providers. The HL7 engine may format information to an HL7 electronic medical record (EMR) standard. HL7 may provide a framework for the exchange, integration, sharing and retrieval of electronic health information. Hub 106 may use a HL7 formatting engine to aggregate data received, format the data to an HL7 standard, and communicate the formatted data to server 108.

Asset management system 100 may also include repeaters, such as repeater 114. A repeater, such as repeater 114, may refer to an electronic device that receives a signal and retransmits the signal, often at a higher power. A repeater 114 may receive data from asset tag device 105A and relay the data to hub 106 or another repeater (not shown). A repeater 114 may also act as a bridge to receive data formatted in one wireless communication protocol (e.g., BLE®) and re-transmit in another wireless communication protocol (e.g., Wi-Fi®). The repeater may be used by a device to tether (e.g., using Bluetooth® and/or Wi-Fi®) to the Internet. Repeater 114 may be configured as a network of repeaters, such as nodes in a piconet. A piconet may be a wireless personal area network (WPAN) formed by a device (e.g., Bluetooth® compatible device) serving as a master in the piconet and one or more other devices (e.g., other Bluetooth® compatible devices) serving as slaves.

In one example, a hospital may have multiple repeaters located at different locations in the hospital. The repeaters, such as repeater 114, may receive data from asset tag device 105A, asset 104, beacon device 102, and/or beacon device 103 and relay the data to hub 106. Repeater 114 may relay the data directly to the hub 106 or indirectly relay the data to hub 106 via one or more other repeaters. In one embodiment, each floor or department of a hospital environment may include a hub, such as hub 106 to receive information from one or more repeaters that provide wireless coverage of the floor. Repeater 114 may be powered by a batter, powered by an electrical outlet, or powered by any other manner. Repeater 114 may be a small form factor device, such as the size of human child's fist.

Server 108 (also referred to as a server computer system) may be a computing device such as server computer, a desktop computer, or a laptop computer, or a portable computing device such as, but not limited to, mobile telephones, personal digital assistants (PDAs), portable media players, netbooks, tablet computers, portable gaming consoles, portable televisions, electronic book readers, and the like. Although a single server (e.g., server 108) is illustrated in FIG. 1B, any number of servers may be present in an AMS.

Server 108 may be a server computer system that is part of an online infrastructure system. Examples of an online infrastructure include a cloud computing platform that may allow multiple users from multiple client systems to access different components or computer resources of the cloud computing platform. The online infrastructure may provide physical and/or virtual resources, such as access to services, servers, or other such resources, to client systems. Examples of services (or functionality) provided by the online infrastructure may include, but are not limited to, access to data stored on storage devices, provisioning of virtual machines, software services, physical servers, etc.

Server 108 may store, process, and or analyze data received from hub 106, as well as beacon device 102 and 103, asset 104, and asset tag device 105A. In one embodiment, the server 108 may use the beacon identifiers and asset tag identifiers to determine the real-time location of an asset (e.g., real-time location system (RTLS)).

In one embodiment, server 108 may determine the location of asset 104 from the beacon identifier of beacon device 102 and/or beacon device 103, and the asset tag identifier. The server 108 may also record a time stamp indicating when the beacon identifiers were received by asset tag device 105A. Server 108 may store data associating the location of a beacon device in an environment to a specific beacon identifier. Additionally, sever 108 may store additional data mapping an asset tag identifier to an asset. Accordingly, the beacon identifier and asset tag identifier may be correlated, using the mapping data, to a location in an environment. The location may be the area 110 and/or include a location within area 110 where the asset tag device 105A and associated asset 104 are located (e.g., the middle of area 110).

In one embodiment, the server 108 may include an application programming interface (API), such as a representational state transfer (REST) application program interface (API) interface, to enable applications to retrieve and present data, such as asset data and/or management data, to users. For example, an application may include a user interface with a map of a facility. The application may access the asset data and/or management data and determine the locations of one or more assets in the facility. The application may display the locations of the asset to a user. In another example, the application may query or search the asset data and/or management data to determine user requested data, such as location information of an asset, usage information of an asset, and so forth.

In another embodiment, server 108 may receive battery data indicating battery usage information and/or battery life information for an asset 104, asset tag device 105A, and/or beacon devices 102 and 103. Server 108 may use the battery data to determine a trend in the amount of time a battery of the device may be used, an estimated remaining battery life, battery errors, when to replace a battery, and so forth. For example, asset tag device 105A may receive a battery identifier in a wireless broadcast from beacon device 102 and 103. When creating a data packet, asset tag may include the battery identifier of each beacon device and/or a battery identifier for asset tag device 105A. The battery data, including the battery identifiers may be transmitted to hub 106. A battery identifier may include information such as remaining battery life, battery consumption, and/or battery usage rate of an associated device.

In another embodiment, data such as software updates or patches may be communicated from the server 108 to a hub 106, asset 104, asset tag device 105A, and/or beacon devices 102 and 103.

It should be noted that reference may be made to elements of FIG. 1B in the below specification.

FIG. 2 illustrates a method of analyzing and re-transmitting communication data, according to one embodiment. The method 200 may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. The method 200 may be performed all or in part by hub module 112.

Method 200 begins by a processing device executing the method receives communication data from a source device over a channel of a plurality of wireless channels (block 205). For example, the communication hub 106 may receive a wireless broadcast 124 from asset 104. The wireless broadcast 124 may be formatted according to a wireless communication protocol conforming to the WLAN standard and may be received by hub 106 at a WLAN channel using a WLAN antenna.

Method 200 continues to block 210 where processing logic authorizes the source device in view of at least one of an indication that the source device is within a specified distance from hub 106 or an indication that the source device is predefined as an approved device. For example, hub 106 may only authorize devices from a specific company, a specific type of device, or devices from an approved set of devices to transmit communication data over hub 106. In one example, the communication data itself may be used to determine that the source device is an approved device. The communication data may be analyzed (e.g., parsed) to locate identifiers indicating an approved or unapproved device. In another example, hub 106 may manage authorization using a local database. Additional details of authorization are discussed at least in regards to FIGS. 6, 7, and 8.

Method 200 continues to block 215 where processing logic determines whether to re-transmit the communication data to the destination device over a second channel of the plurality of wireless channels. The communication data is not re-transmitted when the communication data comprises exceeds a threshold level of corrupted data (such as to render the data unreadable) or the source device is unauthorized. In one example, the channel over which the communication data is re-transmitted (e.g., second channel) may be a different channel than the channel on which the communication data was received (e.g., first channel). For example, hub 106 may receive the communication data on a WLAN channel and re-transmit on a cellular channel. In another example, the receiving and re-transmitting channels may be the same channel. The re-transmitted communication data may be the same or substantially the same (e.g., a majority of the data) as the communication data received by hub 106.

In another example, processing logic may determine when the communication data is corrupted data by analyzing the communication data (e.g., user data). For example, the communication data can include blood type information of a patient, such as information identifying the blood type of the patient at type “O+” However, when the communication data is corrupted, the corrupted communication data may erroneously indicate that the patient's blood type is “P”. The processing logic of the device may determine that “P” is not a possible blood type the patient and determine that the communication data is corrupted. In one embodiment, the threshold data corruption level may be when any data is corrupted. In another embodiment, a specified level of corrupted data may refer to a percentage of data that is deemed corrupted. A specified level of corrupted data may refer to specific types of data or data from a specific source device that is deemed corrupted. In another example, corrupted data may be determined by a checksum, such as a calculated checksum. Additional details of determining data is corrupted is discussed at least in regards to FIG. 9.

In another example, when the source device is unauthorized, as discussed with respect to block 210, the processing logic may determine not to re-transmit the communication data. For example, only source devices from a specific company may be allowed to re-transmit data using hub 106. The processing logic may determine devices not from the specific company are unauthorized and may determine not to re-transmit communication data from the unauthorized devices.

Method 200 continues to block 220 where processing logic transforms a first format of the communication data to a second format. The first format may correspond to the first wireless channel and the second format may correspond to the second wireless channel. The first and second format may be different formats corresponding to different channels. For example, asset tag device 105A may broadcast a wireless communication signal containing communication data in a communication protocol conforming to the a wireless communication protocol of a low energy wireless personal area network (PAN) standard (e.g., BLE® standard) which is received by hub 106 on a channel capable of receiving the wireless communication protocol (e.g., BLE® channel). The hub 106 may transform the communication data to another format by encrypting the data and/or formatting the communication data to be re-transmitted in a cellular communication protocol using a cellular channel. Transforming the format may include compressing the communication data, securing the communication data, changing the communication protocol of the communication data, removing data from the communication data, and/or adding data to the communication data. It should be noted that transforming the data may be performed by processing logic at any time. In one example, the communication data may be transformed at least in part after the communication data has been determined to be re-transmitted. In another example, the communication data may be transformed at least in part prior to determining the communication data is to be re-transmitted or at any time after receiving the communication data.

Method 200 continues to block 225 where the processing logic re-transmits the communication data in the second format to the destination device over the second channel. For example, the communication data may be re-transmitted to server 108 using a cellular communication protocol (also referred to as format compliant with cellular standard) over a cellular network.

FIG. 3 illustrates a method of delaying the re-transmitting of communication data, according to one embodiment. The method 300 may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. The method 300 may be performed all or in part by hub module 112.

Method 300 begins at block 305 where processing logic executing the method analyzes the communication data to determine a type of data. A type of data (also referred to as data type) may refer to data itself (e.g., identifiers of the data). The processing logic may parse the communication data to locate one or more identifiers. In one example, the processing logic may parse the communication data to locate a source device identifier indicating a source device having originated the communication data. The source device identifier may be a type of data and/or indicate a type of data. For example, source device identifier for an EKG device may itself be a type of data. In another example, the EKG source device identifier may indicate that the communication data includes a type of data, such as heart information data type. In another example, the identifiers may be used to identify other data types such as parameters (e.g., blood or heart rate) and/or value of parameters (e.g., O-type blood or 80 beats per minute). Data type identifiers may include identifiers, such as a source device identifier, a parameter identifier, a parameter value identifier, etc., or a combination thereof. Examples of data type identifiers are used for purposes of illustration, rather than limitation. It should be appreciated that any number of identifiers may be used to analyze data type.

Method 300 continues to block 310 where processing logic calculates a priority of the communication data based on the analyzing of block 305. A priority may be a numerical value such as 1 through 10, where 1 indicates the lowest priority and 10 indicates a highest priority. A priority may be a priority level such as, low priority, medium priority, high priority, and/or emergency (or critical) priority. The priority level may be predetermined for certain data types. The priority level may be based on a priority algorithm, such as weighting the source device and certain data types to calculate a priority level of the data. For example, communication data from a source device such as mobile device may be predetermined as a low priority while communication data from an EKG device may be a high priority. In another example, different data types from a source machine may have different priorities. Communication data from an EKG device with normal readings may have a low priority, but communication data from same EKG device with irregular readings may have a high priority. It should be noted that the examples of calculating priority are for purposes of illustration, and not for limitation.

Method 300 continues to block 315 where processing logic delays the re-transmission of the communication data when the priority is below a threshold. The specified threshold may be specified by a developer or administrator. The threshold may correspond to the priority as discussed above with respect to block 310. For example, the specified threshold may be a numerical value, such as 7, corresponding to the priority scale, such as 1 through 10, as discussed above. The specified threshold may be set at greater than equal to high priority. In the above examples, the processing logic may delay transmission for communication data with a calculated priority of 7 and above, or high priority and above. The amount of delay may be specified by a developer or administrator. The delay may for minutes, hours, days, for example. The delay may be for a period till processing logic determines the communication data may be re-transmitted. The amount of delay may be determined in view of managing transmission data rates and/or cost of transmitting data.

FIG. 4 illustrates a method of delaying the re-transmitting of communication data, according to another embodiment. The method 400 may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. The method 400 may be performed all or in part by hub module 112.

Method 400 begins at block 405 where processing logic executing the method analyzes the data size of the communication data. In one example, the data size may be measured in a number of bytes. In another example, data size may be measured as a number of data packets. Examples of data size are used for purposes of illustration, rather than limitation. It should be appreciated that numerous units of data size may be available. In one example, processing logic may analyze the data size of the communication data as 500 kilobytes.

Method 400 continues to block 410 where processing logic may delay the re-transmission of the communication data when the data size is greater than a specified threshold. The specified threshold may be specified by a developer or administrator. The specified threshold may correspond to the units of data size discussed above. For example, the threshold may be set at 1 gigabyte or 10 k data packets. The amount of delay may be specified by a developer or administrator. The delay may for minutes, hours, days, for example. The delay may be for a period till processing logic determines the communication data may be re-transmitted. The amount of delay may be determined in view of managing transmission data rates and/or cost of transmitting data.

FIG. 5 illustrates a method of transmitting a response in view of the communication data, according to one embodiment. The method 500 may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. The method 500 may be performed all or in part by hub module 112.

Method 500 begins at block 505 where processing logic executing the method analyzes the communication data to determine a type of data. Block 505 may be performed in a similar manner as block 305 of method 300 described above with reference to FIG. 3.

Method 500 continues to block 510 where processing logic determines whether the data type is predefined to trigger the communication hub to transmit a response. In one example, processing logic may compare the data type identified in block 505 with predefined data types predefined as having an associated response. If the data type of the communication data matches the predefined data type, processing logic may determine to transmit a response. If the data type of the communication data does not match the predefined data type, processing logic may determine not to transmit a response. Transmitting the response may be in addition to or in lieu of re-transmitting the communication data. In one example, a developer or administrator may predefine certain data types to trigger a response from the communication hub. The response may be sent to a destination device and/or a device other than the server. A response may be any type of information signal containing data. The response may be a response to the communication data and include the same information and/or information different from the communication data.

Method 500 continues to block 515 where processing logic transmits the response when the type of data is determined to trigger the response. For example, the communication device may receive communication data from an EKG indicating no heart rate. Processing logic may identify the data type indicating no heart rate from an EKG. Communication data from an EKG (or specific data from an EKG) may be predefined to trigger the communication hub to transmit a response. Processing logic may transmit an alert response to a nearest nursing station to make staff aware of the situation. In some embodiments, the data may be directed to the internal hospital system if it is a certain data type (such as patient information) and directed to the third party server when it is another data type (such as battery information).

FIG. 6 illustrates a method of authorizing a source device in view of an indication that a source device is within a specified distance, according to one embodiment. The method 600 may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. The method 600 may be performed all or in part by hub module 112.

Distance may refer to an actual measurable distance (and/or direction) or may refer to a relative distance of one source device from hub 106 relative to the distance of another source device from hub 106 (e.g., one source device is closer to the hub 106 than the other source device). The actual distance (e.g., any source device within a 10 ft radius) and/or relative distance (10 closest source devices) may be specified by an administrator and/or developer. Relative distance for example may be specified as X number of source devices closest to hub 106. The indication that of the source device is within a specified distance may be signal strength, such as RSSI. RSSI may be a measurement of the power present in the received wireless broadcast at a receiving device (e.g., hub 106). RSSI may serve as an indirect indication of a specific and/or relative distance of a source device from hub 106. Hub 106 may include the functionality (hardware and/or software) to measure the RSSI of wireless broadcasts.

Method 600 begins at block 605, where processing logic executing the method analyzes the communication to determine an RSSI. Analyzing the communication data to determine an RSSI may be performed in a similar manner as block 305 of method 300 described above with reference to FIG. 3 and block 505 of method 500 described above with reference to FIG. 5. In one example, analyzing includes parsing the communication data to locate an RSSI. The communication data may have been wirelessly transmitted by the source device. It should be appreciated that a receiving device, such as a hub, may have the functionality to measure the RSSI of the received wireless broadcast. It should also be appreciated the RSSI may be included in the communication data by the receiving device. For example, the communication data may include an RSSI identifier indicating an RSSI value of the received wireless broadcast.

Method 600 continues at block 610 where processing logic compares a received signal strength indicator (RSSI) of the wireless broadcast to an RSSI threshold. The RSSI threshold may be a numerical threshold. The RSSI threshold may be set by an administrator and/or developer. For example, the RSSI threshold may be set to −110 dBm, or any other value. The RSSI threshold may also include a number of devices having a highest RSSI. For example, the RSSI threshold may specify X number of source devices (e.g., 10 devices) having the highest RSSI (e.g., top 10 devices based on RSSI). The RSSI threshold may also include a number of devices having a highest RSSI and exceed a numerical RSSI threshold (e.g., the top 10 devices based on RSSI and exceeding the RSSI value of −110 dBm). In one example, received wireless broadcasts with RSSI below the RSSI threshold may be from source devices from outside an area of interest.

Method 600 continues to block 615, where processing logic determines the source device is authorized when the RSSI is greater than or equal to the RSSI threshold or unauthorized when the RSSI is less than the RSSI threshold. For example, if the RSSI threshold is set to −110 dBm, all source devices with an RSSI exceeding or equal to −110 dBm are authorized, while all source devices with an RSSI below −110 dBm are unauthorized. In another example, processing logic determines all source devices with RSSI below −110 dBm are unauthorized, but determines only the top 10 source devices with the highest RSSI and have an RSSI above or equal to −110 dBm are authorized.

FIG. 7 illustrates a method of authorizing a source device in view of a device density threshold, according to one embodiment. The method 700 may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. The method 700 may be performed all or in part by hub module 112.

It should be appreciated that authorizing the source device in view of a device density threshold associated with the communication hub may be performed in a similar manner as authorizing the source device in view of an indication the source device is within a specified distance from the hub, and described above with respect to FIG. 6.

Device density threshold may refer to the number of devices able to communicate (e.g. send communication data to) with hub 106 at any given instance. Device density threshold may be a number of devices, for example 10 devices. Device density threshold may refer to a number of devices of one type (e.g., 10 asset tags) and another number of devices of another type (e.g., 5 mobile devices. Each channel may have a device density threshold. The device density threshold may be specified by the manufactures and based on hardware constraints and/or be an arbitrary number of devices determined for example, by an administrator.

In one example, to authorize the source device in view of a device density threshold, processing logic may analyze the communication data to determine the RSSI and compare the RSSI to an RSSI threshold. In regards to a device density threshold, the RSSI threshold may be set to the device density threshold (e.g., a number of devices able to communication with hub 106) having a highest RSSI. For example, the RSSI threshold may specify X number of source devices (e.g., 10 devices) having the highest RSSI (e.g., top 10 devices based on RSSI). Processing logic determines the source device is authorized when the RSSI is greater than or equal to the RSSI threshold or unauthorized when the RSSI is less than the RSSI threshold.

It should be appreciated that authorizing the source device in view of the device density threshold may be implemented in different ways. For example, hub 106 may choose the first X devices as authorized, X equaling the device density threshold. Additionally, hub 106 may prioritize certain source devices over other source devices when determining which device to authorize in view of the device density threshold.

FIG. 8 illustrates a method of authorizing a source device in view of indication the source device is predefined as an approved device, according to one embodiment. The method 800 may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. The method 800 may be performed all or in part by hub module 112.

Method 800 begins at block 805 where processing logic performing the method analyzes the communication data to determine a source device identifier. Block 805 may be performed in a similar manner as block 305 of method 300 with respect to FIG. 3 and block 505 of method 500 with respect to FIG. 5, and block 605 of method 600 with respect to FIG. 6. For example, processing logic may parse the communication data for a source device identifier. As noted above, communication data may include multiple identifiers, such as company identifiers, source device identifiers, identifiers of other manufacturing specific data (e.g., manufacturer identifier), etc. Any identifier or a combination of identifiers may be used as a source device identifier. For example, the company identifier and/or manufacturing identifier may be used as a source device identifier. It should be noted that the source device identifier may include information to determine the source device is not approved, which may or may not be enough information to determine the actual source device.

Method 800 continues to block 810 where processing logic compares the source device identifier with approved source device identifiers. The approved source device identifiers may be identifiers from source devices approved by for example, a developer and/or administrator. Method 800 continues to block 815 where processing logic determines the source device is authorized when the source device identifier matches the approved source device identifiers or unauthorized when the source device identifier does not match the approved source device identifiers.

For example, processing logic may analyze the communication to determine a source device identifier by parsing the communication to look for a company identifier and/or a manufacturing identifier. When at least one of the company identifier and manufacturing identifier does not match approved identifiers (i.e., approved source device identifiers), processing logic may determine the communication data is from an unapproved device, and not authorized. When both the company identifier and manufacturing identifier match the corresponding approved identifiers, processing logic may determine that the communication data is from an approved source device, and authorized. It should be appreciated than any identifier or combination of identifiers may be used as an indication that a wireless broadcast is from an approved source device.

FIG. 9 illustrates a method of determining whether to re-transmit the communication data in view of a specified level of corrupted data, according to one embodiment. The method 900 may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. The method 900 may be performed all or in part by hub module 112. As noted above, a specified level of corrupted data may refer data deemed corrupted, such as specific types of data or data from a specific source device.

Method 900 begins at block 905 where processing logic performing the method analyzes the communication data to determine a source device identifier and a parameter value. The analyzing of block 905 may be performed in a similar manner as described in block 305 of method 300 with respect to FIG. 3, block 505 of method 500 with respect to FIG. 5, block 605 of method 600 with respect to FIG. 6, and block 805 of method 800 with respect to FIG. 8. In one example, processing logic may analyze the communication data to determine a source device identifier and a parameter value (e.g., parameter value identifier) by parsing the communication data for the source device identifier and the parameter value. The parameter value may be a numerical value of a parameter (e.g., parameter identifier). For example, a parameter value of 98° F. may be the parameter value for a temperature parameter. The parameter value may be a property of a parameter (e.g., O-type blood for the parameter, blood type).

Method 900 continues to block 910 where processing logic identifies the source device in view of the source device identifier. For example, the source device identifier may indicate that the communication data is from an EKG device.

Method 900 continues to block 915 where processing logic compares the parameter value to a parameter set predefined for the source device. For example, if the device identifier indicates that the communication data is from a thermometer. An administrator or developer may predefine the parameter set for the thermometer as ranging from 90° F. to 110° F. The parameter set may be numerical, if applicable. The parameter set may be a set of non-numerical values (e.g., blood types, such as O, A, etc.). If the parameter value is within the predefined parameter set, processing logic may determine to re-transmit the communication data. If the parameter value is outside the predefined parameter set, processing logic may determine not to re-transmit the communication data.

Method 900 continues to block 920 where processing logic prevents the re-transmission of the communication data when the parameter value is outside the parameter set. Continuing the above example, processing logic may identify the parameter value (i.e., temperature) from the source device (e.g., thermometer) as 200° F., which is outside the parameter set of 90° F. to 110° F. Accordingly, processing logic may prevent the re-transmission of the communication data from the thermometer.

FIG. 10 illustrates a diagrammatic representation of a machine in the exemplary form of a computer system 1000 within which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative implementations, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” can also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

The exemplary computer system 1000 includes a processing device (processor) 1002, a main memory 1004 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 1006 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 1018, which communicate with each other via a bus 1030.

Processing device 1002 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, microcontroller, or the like. More particularly, the processing device 1002 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The processing device 1002 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 1002 is configured to execute instructions 1026 for performing the operations and steps discussed herein.

The computer system 1000 may further include a network interface device 1022. The computer system 1000 also may include a video display unit 1008 (e.g., a liquid crystal display (LCD), a cathode ray tube (CRT), or a touch screen), an alphanumeric input device 1010 (e.g., a keyboard), a cursor control device 1014 (e.g., a mouse), and a signal generation device 1016 (e.g., a speaker).

The data storage device 1018 may include a machine-readable storage medium 1024 on which is stored one or more sets of instructions (e.g., software including hub module 112) embodying any one or more of the methodologies or functions described herein. The instructions may also reside, completely or at least partially, within the main memory 1004 and/or within the processing device 1002 during execution thereof by the computer system 1000, the main memory 1004 and the processing device 1002 also constituting computer-readable storage media. The instructions may further be transmitted or received over a network 1020 via the network interface device 1034.

While the machine-readable storage medium 1024 is shown in an exemplary implementation to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” can also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” can accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.

In the foregoing description, numerous details are set forth. It can be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.

Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those that may use physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “receiving”, “authorizing”, “determining”, “transforming”, “analyzing,” “re-transmitting,” “calculating,” “delaying,” “comparing,” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

Although the operations of the methods herein are shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in an inverse order or so that certain operation may be performed, at least in part, concurrently with other operations of the same method and/or different method. In another embodiment, instructions or sub-operations of distinct operations may be in an intermittent and/or alternating manner. The terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and may not necessarily have an ordinal meaning according to their numerical designation.

The disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions.

The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an embodiment” or “one embodiment” or “an implementation” or “one implementation” throughout is not intended to mean the same embodiment or implementation unless described as such.

Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.”

It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other implementations can be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. 

What is claimed is:
 1. A method comprising: receiving, by a processing device of a communication hub, communication data from a source device over a first channel of a plurality of wireless communication channels; authorizing, by the processing device, the source device in view of at least one of an indication that the source device is within a specified distance from the hub or an indication that the source device is predefined as an approved device; determining, by the processing device, whether to re-transmit the communication data to a destination device over a second channel of the plurality of wireless communication channels, wherein the communication data is not re-transmitted when the communication data comprises a specified level of corrupted data or the source device is unauthorized; transforming, by the processing device, a first format of the communication data to a second format, the first format corresponding to the first channel and the second format corresponding to the second channel; and re-transmitting, by the processing device, the communication data in the second format to the destination device over the second channel.
 2. The method of claim 1, further comprising: analyzing, by the processing device, the communication data to determine a type of data; calculating, by the processing device, a priority of the communication data based on the analyzing; and delaying the re-transmission of the communication data, by the processing device, when the priority is below a specified threshold.
 3. The method of claim 1, further comprising: analyzing, by the processing device, a data size of the communication data; and delaying the re-transmission of the communication data, by the processing device, when the data size is greater than a specified threshold.
 4. The method of claim 1, further comprising: analyzing, by the processing device, the communication data to determine a type of data; determining, by the processing device, whether the type of data is predefined to trigger the communication hub to transmit a response; and transmitting, by the processing device, the response when the type of data is determined to trigger the response.
 5. The method of claim 1, wherein authorizing the source device in view of the indication that the source device is within a specified distance from the hub comprises: analyzing the communication data to determine a received signal strength indicator (RSSI), the communication data having been wirelessly transmitted by the source device; comparing the RSSI to an RSSI threshold; and determining the source device is authorized when the RSSI is greater than or equal to the RSSI threshold or unauthorized when the RSSI is less than the RSSI threshold.
 6. The method of claim 1, wherein authorizing the source device in view of the indication that the source device is predefined as an approved device comprises: analyzing the communication data to determine a source device identifier, the source device identifier associated with the source device having transmitted the communication data; comparing the source device identifier with approved source device identifiers; and determining the source device is authorized when the source device identifier matches the approved source device identifiers or unauthorized when the source device identifier does not match the approved source device identifiers.
 7. The method of claim 1, wherein determining whether to re-transmit the communication data to a destination device over a second channel of the plurality of wireless communication channels, wherein the communication data is not re-transmitted when the communication data comprises a specified level of corrupted data comprises: analyzing the communication data to determine a source device identifier and a parameter value; identifying the source device in view of the source device identifier; comparing the parameter value to a parameter set predefined for the source device; and preventing the re-transmission of the communication data when the parameter value is outside the parameter set.
 8. The method of claim 1, further comprising authorizing, by the processing device, the source device in view a device density threshold associated with the communication hub.
 9. The method of claim 1, wherein transforming the first format of the communication data to a second format is transformed when the communication data is determined to be transmitted.
 10. The method of claim 1, wherein transforming the first format of the communication data to the second format comprises at least one of compressing the communication data, securing the communication data, changing a communication protocol of the communication data, removing data from the communication data, or adding data to the communication data.
 11. The method of claim 1, wherein the plurality of wireless communication channels comprises at least two of a channel compliant with a low energy wireless personal area network (PAN) standard, a wireless local area network (WLAN) standard, or a cellular standard.
 12. The method of claim 1, wherein re-transmitting the communication data in the second format to the destination device over the second channel comprises transmitting, via a cellular network, the communication data to a server in a format compliant with a cellular standard.
 13. The method of claim 1, wherein the hub further comprises a wired communication channel.
 14. An apparatus comprising: an antenna for receiving and transmitting communication data; a processing device operatively coupled to the antenna; and a memory, coupled to the processing device and storing instructions, that when executed cause the processing device to: receive, by the processing device of a communication hub, communication data from a source device over a first channel of a plurality of wireless communication channels; authorize the source device in view of at least one of an indication that the source device is within a specified distance from the hub or an indication that the source device is predefined as an approved device; determine whether to re-transmit the communication data to a destination device over a second channel of the plurality of wireless communication channels, wherein the communication data is not re-transmitted when the communication data comprises a specified level of corrupted data or the source device is unauthorized; transform a first format of the communication data to a second format, the first format corresponding to the first channel and the second format corresponding to the second channel; and re-transmit the communication data in the second format to the destination device over the second channel.
 15. The apparatus of claim 14, the processing device further to: analyze the communication data to determine a type of data; calculate a priority of the communication data based on the analyzing; and delay the re-transmission of the communication data when the priority is below a specified threshold.
 16. The apparatus of claim 14, the processing device further to: analyze a data size of the communication data; and delay the re-transmission of the communication data, by the processing device, when the data size is greater than a specified threshold.
 17. The apparatus of claim 14, the processing device further to: analyze the communication data to determine a type of data; determine whether the type of data is predefined to trigger the communication hub to transmit a response; and transmit the response when the type of data is determined to trigger the response.
 18. A non-transitory machine-readable storage including instruction that, when executed by a processing device, cause the processing device to: receive, by the processing device of a communication hub, communication data from a source device over a first channel of a plurality of wireless communication channels; authorize the source device in view of at least one of an indication that the source device is within a specified distance from the hub or an indication that the source device is predefined as an approved device; determine whether to re-transmit the communication data to a destination device over a second channel of the plurality of wireless communication channels, wherein the communication data is not re-transmitted when the communication data comprises a specified level of corrupted data or the source device is unauthorized; transform a first format of the communication data to a second format, the first format corresponding to the first channel and the second format corresponding to the second channel; and re-transmit the communication data in the second format to the destination device over the second channel.
 19. The non-transitory machine-readable storage of claim 18, the processing device further to: analyze the communication data to determine a type of data; calculate a priority of the communication data based on the analyzing; and delay the re-transmission of the communication data when the priority is below a specified threshold.
 20. The non-transitory machine-readable storage of claim 18, the processing device further to: analyze a data size of the communication data; delay the re-transmission of the communication data, by the processing device, when the data size is greater than a specified threshold; analyze the communication data to determine a type of data; determine whether the type of data is predefined to trigger the communication hub to transmit a response; and transmit the response when the type of data is determined to trigger the response. 